The present invention relates generally to data transfer, and specifically to data transfer between Internet Small Computer System Interface devices and devices operating in a Fibre Channel network.
As requirements for the ability to transfer large amounts of data between computing entities has grown, demand for efficient transfer of the data within and between computing networks has also increased. An ubiquitous protocol used for transferring data is a Transmission Control Protocol/Internet Protocol (TCP/IP) TCP is described by Postel in Request For Comments (RFC) 793 of the U.S. Defence Advanced Research Projects Agency (DARPA), which is incorporated herein by reference.
A Small Computer System Interface (SCSI) protocol enables an input/output (I/O) device such as a printer or a scanner, termed a target, to communicate with a client of the I/O device, termed an initiator. The original SCSI was standardized in 1986 by the American National Standards Institute (ANSI) as X3.131-1986, and limited distances between the target and the initiator to relatively small values, of the order of six meters. The current evolving SCSI standard is described in a document titled xe2x80x9cSCSI Architecture Model-2 (SAM-2),xe2x80x9d produced by T10, Technical Committee of the National Committee on Information Technology Standards, which may be found on the T10 Internet site at ftp://ftp.t10.org/t10/drafts/sam2, and which is incorporated herein by reference.
An Internet SCSI (iSCSI) protocol has been developed by the Internet Engineering Task Force (IETF) to enable SCSI clients and I/O devices to communicate with no limitations on distance between the components. A draft of the protocol can be found at http://ietf.org/internet-drafts/draft-ietf-ips-iscsi-08.txt, and is incorporated herein by reference. The iSCSI protocol encapsulates SCSI commands by representing them as serial strings of bytes preceded by iSCSI headers. The strings of bytes with iSCSI headers, termed Protocol Data Units (PDUs), are formed into TCP/IP packets which are transmitted in a TCP/IP network.
A number of Fibre Channel (FC) protocols have been issued by the American National Standards Institute, Washington, D.C. A Fibre Channel protocol enables transfer of data-frames via an FC switching fabric controlled by a management facility. An FCP protocol is a mapping of the SCSI protocol into an FC protocol, and is a protocol that supports data transfer between hosts and SCSI I/O devices over FC networks.
Cisco Systems, Inc., of San Jose, Calif., produce an SN 5420 storage router which is able to convey SCSI commands from a host operating in a TCP/IP network to a storage device operating in an FC network. The host incorporates a dedicated SN 5420 driver to convert SCSI commands to iSCSI data and transfer the iSCSI data to the SN 5420 router.
It is an object of some aspects of the present invention to provide a method and apparatus for transferring data between an Internet Small Computer System Interface device and a Fibre Channel device.
In preferred embodiments of the present invention, a gateway couples a network operating under a Transmission Control Protocol/Internet Protocol (TCP/IP) with a network operating under a Fibre Channel (FC) protocol, so as to transfer data between the networks. At least one device in the TCP/IP network is implemented to operate according to an Internet Small Computer System Interface (iSCSI) protocol, such devices herein being termed iSCSI devices. The FC network comprises at least one FC device implemented to operate according to a SCSI protocol, such devices herein being termed FCP devices.
The gateway generates an FC xe2x80x9cimagexe2x80x9d of each of the iSCSI devices, each FC image comprising a respective virtual FC address, preferably derived from an FC storage name server. Each iSCSI device is thus xe2x80x9cvisiblexe2x80x9d to the FCP devices in the FC network via its respective FC image, and communication between the iSCSI devices and the FCP devices can be implemented via the virtual FC addresses of the iSCSI devices. The gateway also generates a TCP/IP image of each of the FCP devices, each TCP/IP image being visible to the iSCSI devices in the TCP/IP network, and comprising a respective virtual TCP/IP address (preferably derived from an IP name server) with which the iSCSI devices can communicate. To implement communication between a specific iSCSI device and a specific FCP device, a xe2x80x9cconnection-pairxe2x80x9d between the two devices is formed. The connection-pair comprises a first TCP connection between the iSCSI device and the gateway and a second FC connection between the FCP device and the gateway.
To transfer data between the two devices, the gateway translates data frames transmitted via the connection-pair between FC protocol data and iSCSI protocol data. Thus, the gateway enables iSCSI devices and FCP devices to communicate bi-directionally in a substantially transparent manner, without requiring software and/or hardware changes to existing iSCSI and FCP devices.
Preferably, the gateway performs a synchronization check on iSCSI frames received while a connection-pair is operative. Most preferably, in the event of discovering a synchronization error, the gateway resynchronizes remaining frames and allows missing frames to be recovered at an application level. Alternatively, the gateway closes the connection-pair, and allows the application to reopen it.
The gateway is most preferably implemented to translate between each iSCSI task that uses the TCP connection and a corresponding FCP task that uses the FC connection.
The gateway is most preferably also implemented to collect FCP data sequences, each of which might be comprised of several FC frames, and then send each sequence as an iSCSI data message. It is also implemented to translate each iSCSI data message into an FCP data sequence, breaking each sequence into one or more FC frames.
There is therefore provided, according to a preferred embodiment of the present invention, a method for transferring information between an Internet Small Computer System Interface (iSCSI) device operating under an iSCSI protocol within a Transmission Control Protocol/Internet Protocol (TCP/IP) network and a SCSI over Fibre Channel (FCP) device operating under an FCP protocol within a Fibre Channel (FC) network, including:
coupling the TCP/IP and the FC networks via a gateway adapted to convey data between the networks;
generating in the gateway a virtual-FC-address compatible with the FC protocol for the iSCSI device;
generating in the gateway a virtual-TCP/IP-address compatible with the TCP/IP protocol for the FCP device;
conveying a first FC-data-frame, compatible with the FCP protocol and comprising FCP-data, from the FCP device addressed to the virtual-FC-address of the iSCSI device;
translating in the gateway the first FCP-data-frame into a first iSCSI-data-frame, compatible with the iSCSI protocol and comprising the FCP-data, addressed to a TCP/IP address of the iSCSI device;
conveying the first iSCSI-data-frame from the gateway to the iSCSI device responsive to the TCP/IP address;
conveying a second iSCSI-data-frame, compatible with the iSCSI protocol and comprising iSCSI-data, from the iSCSI device addressed to the virtual-TCP/IP-address of the FCP device;
translating in the gateway the second iSCSI-data-frame into a second FCP-data-frame, compatible with the FCP protocol and comprising the iSCSI-data, addressed to an FC address of the FCP device; and
conveying the second FCP-data-frame from the gateway to the FCP device responsive to the FC address.
Preferably, the FCP-data includes a task for the iSCSI device, and translating the first FCP-data-frame includes mapping the task to an iSCSI task; and the iSCSI-data includes a task for the FCP device, and translating the second iSCSI-data-frame includes mapping the task to an FC task.
Preferably, translating in the gateway the second iSCSI-data-frame includes performing a synchronization check on the second iSCSI-data-frame.
The method preferably further includes resynchronizing a subsequent iSCSI-data-frame responsive to the synchronization check.
The method preferably includes generating a connection-pair between the iSCSI device and the FCP device, wherein the connection-pair includes a TCP connection between the iSCSI device and the gateway which is mapped to an FC connection between the gateway and the FCP device.
There is further provided, according to a preferred embodiment of the present invention, apparatus for transferring information between an Internet Small Computer System Interface (iSCSI) device operating under an iSCSI protocol within a Transmission Control Protocol/Internet Protocol (TCP/IP) network and a SCSI over Fibre Channel (FCP) device operating under an FCP protocol within a Fibre Channel FC network, including:
a gateway, including a central processing unit (CPU) and a memory, wherein the gateway couples the TCP/IP and the FC networks and is adapted to convey data between the networks, wherein the CPU:
generates in the memory a virtual-FC-address compatible with the FC protocol for the iSCSI device; and
generates in the memory a virtual-TCP/IP-address compatible with the TCP/IP protocol for the FCP device; and wherein the gateway is adapted to:
receive a first FCP-data-frame, compatible with the FCP protocol and comprising FCP-data, from the FCP device addressed to the virtual-FC-address of the iSCSI device;
translate the first FCP-data-frame into a first iSCSI-data-frame, compatible with the iSCSI protocol and comprising the FCP-data, addressed to a TCP/IP address of the iSCSI device;
convey the first iSCSI-data-frame from the gateway to the iSCSI device responsive to the TCP/IP address;
receive a second iSCSI-data-frame, compatible with the iSCSI protocol and comprising iSCSI-data, from the iSCSI device addressed to the virtual-TCP/IP-address of the FCP device;
translate the second iSCSI-data-frame into a second FCP-data-frame, compatible with the FCP protocol and comprising the iSCSI-data, addressed to an FC address of the FCP device; and
convey the second FCP-data-frame from the gateway to the FCP device responsive to the FC address.
Preferably, the FCP-data includes a task for the iSCSI device, and the CPU maps the task to an iSCSI task.
Further preferably, the iSCSI-data includes a task for the FCP device, and the gateway maps the task to an FCP task.
Preferably, the gateway is adapted to perform a synchronization check on the second iSCSI-data-frame.
Further preferably, the gateway is adapted to resynchronize a subsequent iSCSI-data-frame responsive to the synchronization check.
Preferably, the CPU is adapted to generate a connection-pair between the iSCSI device and the FCP device, wherein the connection-pair includes a TCP connection between the iSCSI device and the gateway which is mapped to an FC connection between the gateway and the FCP device.